﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using RegistroMascotas.Modelo;
using Service;

namespace RegistroMascotas2
{
    public partial class ver_mascotas : System.Web.UI.Page
    {
        List<Mascota> _misMascotas = null;

        protected void Page_Load(object sender, EventArgs e)
        {
            cuentacentro.Visible = true;

            try
            {
                //cargarMisMascotas();
            }
            catch (Exception ex)
            {
                cuentacentro.Visible = false;
                lblNotificacion.Text = ex.Message;
                lblNotificacion.CssClass = "errores";
            }
        }

        protected void verMascota_click(object sender, EventArgs e)
        {
            try
            {
                Button btnMascota = (Button)sender;

                int id = int.Parse(btnMascota.CommandArgument);
                //ir a la base de datos, recuperar mascota, guardarla y pasarla
                Session["Mascota"] = GestorMascota.obtenerMascotaDetalle(id);

                Response.Redirect("~/mascota.aspx");
            }
            catch (Exception ex)
            {
                cuentacentro.Visible = false;
                lblNotificacion.Text = ex.Message;
                lblNotificacion.CssClass = "errores";
            }
        }

        private void cargarMisMascotas()
        {
            int cantidadMascotas = 0;
            TableRow fila = null;
            TableCell celda = null;
            Image imagenAnimal = null;
            CheckBox nombreAnimal = null;
            string path = "";

            try
            {
                _misMascotas = obtenerMisMascotas(int.Parse(Session["IdDueño"].ToString()));
                cantidadMascotas = _misMascotas.Count;

                foreach (Mascota pet in _misMascotas)
                {
                    for (int i = 1; i <= cantidadMascotas; i++)
                    {
                        if (i == 1 || i % 2 != 0)
                        { //cuando es impar creamos una nueva fila
                            fila = new TableRow();
                            fila.ID = "trMascota" + i.ToString();
                            fila.Attributes.Add("runat", "server");
                        }
                        celda = new TableCell();
                        celda.ID = "tcMascota" + i.ToString();
                        celda.Attributes.Add("runat", "server");

                        if (pet.Imagen != null)
                        {
                            imagenAnimal = new Image();
                            imagenAnimal.ID = "imgMascota" + i.ToString();
                            imagenAnimal.Attributes.Add("runat", "server");

                            if (pet.Imagen != String.Empty)
                            {
                                System.Drawing.Image img = Validaciones.StringToImage(pet.Imagen);
                                path = "/temp/" + Guid.NewGuid() + ".jpg";
                                img.Save(Server.MapPath(path));

                                imagenAnimal.ImageUrl = path;
                            }
                            else
                            {
                                imagenAnimal.ImageUrl = "imgs/micuenta-imagen.png";
                            }
                        }
                        else
                        {
                            imagenAnimal.ImageUrl = "imgs/micuenta-imagen.png";
                        }

                        nombreAnimal = new CheckBox();
                        nombreAnimal.ID = "chkMascota" + i.ToString();
                        nombreAnimal.Attributes.Add("runat", "server");
                        nombreAnimal.Text = pet.Nombre;

                        celda.Controls.Add(imagenAnimal);
                        celda.Controls.Add(nombreAnimal);

                        fila.Cells.Add(celda);

                        //                            if (i % 2 == 0 || i==cantidadMascotas)//cuando ya tiene 2 mascotas agrega la fila a la tabla
                        //tblMascotas.Rows.Add(fila);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        private List<Mascota> obtenerMisMascotas(int idDueño)
        {
            List<Mascota> listaMascotas = null;

            try
            {
                listaMascotas = GestorDeBusqueda.obtenerMisMascotas(idDueño);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return listaMascotas;
        }
    }
}